//
//  NSDate+Extension.swift
//  ALSinaWeiBoSwift
//
//  Created by 柴瑞军 on 16/4/19.
//  Copyright © 2016年 myCompany. All rights reserved.
//

import Foundation
extension NSDate {

    //将新浪返回的时间字符串转换为系统的NSDate
    //不要创建对象就能调用
    class func date(sinaString:String)->NSDate{
    
        //将新浪返回的时间字符串,转换为系统的NSDate
        let df = NSDateFormatter()
        
        //指定字符串格式
        df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        //真机一定要指定local
        df.locale = NSLocale(localeIdentifier: "en")
        
        //将字符串转换为NSDate
        let date = df.dateFromString(sinaString) ?? NSDate()
//        ALPrint("\(sinaString)------\(date)----\(NSDate())")
        return date
    }
    
    //根据输出的日期对象返回特殊的字符串
    func sinaDateDescription() -> String {
        let calendar = NSCalendar.currentCalendar()
         //当天
        if calendar.isDateInToday(self) {
            
            //新浪时间和系统当前时间相差的秒数
            let delte = Int( NSDate().timeIntervalSinceDate(self))
            
            
            //一分钟内
            if delte < 60 {
                return "刚刚"
            }
            if delte < 60 * 60 {
                return "\(delte/60)分钟前"
            }
            if delte < 60 * 60 * 60 {
                return "\(delte/60/60)小时前"
            }
            
        }
            
            //后面三中需要时间格式化
            var dateFormat:String = ""
            
            
            if calendar.isDateInYesterday(self) {
                print("昨天")
                dateFormat = "昨天 HH:mm"
            }else if calendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year)==NSComparisonResult.OrderedSame{
            //进入该方法表示在一年内
                print("一年内的微博")
                dateFormat = "MM dd HH:mm"
            }else{
            //进入该方法标识微博数据更早
                dateFormat = "yyyy-MM-dd HH:mm"
            }
            
            //时间格式化
            let df = NSDateFormatter()
            df.dateFormat = dateFormat
            //指定local
            df.locale = NSLocale(localeIdentifier: "en")
            
            //将时间日期对象转换为字符串
            let dateString = df.stringFromDate(self)
            return dateString
    }
}